package com.adee.java;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;

/**
 * LinkedHashMap中的key按照put的顺序排序，内部维护一个链表存放key；
 * TreeMap内部维护一个红黑树存放key，其key按照给定的Comparable对象排序。
 */
public class Test044_LinkedHashMap {
    public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        Map<String,String> map2 = new ConcurrentHashMap<>();
        Map<String,String> map3 = new LinkedHashMap<>();
        Map<String,String> map4 = new TreeMap<>();

        // HashMap的key和value都可以为null
        map.put(null, "a");
        map.put("a", null);

        // ConcurrentHashMap的key和value都不能为null
        // map2.put(null, "a");
        // map2.put("a", null);

        // LinkedHashMap的key和value都可以为null
        map3.put(null, "a");
        map3.put("a", null);

        // TreeMap的key不能为null，value可以为null
        // map4.put(null, "a");
        map4.put("a", null);
    }
}
